package edu.hwadee.BEIS.entity;
// default package

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.alibaba.fastjson.annotation.JSONField;
import org.hibernate.annotations.GenericGenerator;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * TeacherBasicSituation entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "teacher_basic_situation", catalog = "beis")

public class TeacherBasicSituation implements java.io.Serializable {

	// Fields

	private Integer teacherBasicSituationId;
	private SchoolBasicInfor schoolBasic;
	private Integer servicingStaffCount;
	private Integer facultyStaffCount;
	private Integer regularTeacherCount;
	private Integer foreignTeacherCount;
	private Integer counselingTeacherCount;
	private Integer maleTeacherCount;
	private Integer femaleTeacherCount;
	private Integer cultureTeacherCount;
	private Integer majorTeacherCount;
	private Integer mainHighTeacherCount;
	private Integer deputyHighTeacherCount;
	private Integer intermediateTeacherCount;
	private Integer primaryTeacherCount;
	private Integer rookieTeacherCount;
	private Integer professionalSubjectLeaderCount;
	private Integer cityOutstandYoungTeacherCount;
	private Integer citySpecialTeacherCount;
	private Integer provincialSpecialTeacherCount;
	private Integer doubleTypeTeacherCount;
	private Short countyAuditStatus;
	private Short cityAuditStatus;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date modifyTime;

	// Constructors

	/** default constructor */
	public TeacherBasicSituation() {
	}

	/** full constructor */
	public TeacherBasicSituation(SchoolBasicInfor schoolBasic, Integer servicingStaffCount,
			Integer facultyStaffCount, Integer regularTeacherCount, Integer foreignTeacherCount,
			Integer counselingTeacherCount, Integer maleTeacherCount, Integer femaleTeacherCount,
			Integer cultureTeacherCount, Integer majorTeacherCount, Integer mainHighTeacherCount,
			Integer deputyHighTeacherCount, Integer intermediateTeacherCount, Integer primaryTeacherCount,
			Integer rookieTeacherCount, Integer professionalSubjectLeaderCount, Integer cityOutstandYoungTeacherCount,
			Integer citySpecialTeacherCount, Integer provincialSpecialTeacherCount, Integer doubleTypeTeacherCount,
			Short countyAuditStatus, Short cityAuditStatus, Date modifyTime) {
		this.schoolBasic = schoolBasic;
		this.servicingStaffCount = servicingStaffCount;
		this.facultyStaffCount = facultyStaffCount;
		this.regularTeacherCount = regularTeacherCount;
		this.foreignTeacherCount = foreignTeacherCount;
		this.counselingTeacherCount = counselingTeacherCount;
		this.maleTeacherCount = maleTeacherCount;
		this.femaleTeacherCount = femaleTeacherCount;
		this.cultureTeacherCount = cultureTeacherCount;
		this.majorTeacherCount = majorTeacherCount;
		this.mainHighTeacherCount = mainHighTeacherCount;
		this.deputyHighTeacherCount = deputyHighTeacherCount;
		this.intermediateTeacherCount = intermediateTeacherCount;
		this.primaryTeacherCount = primaryTeacherCount;
		this.rookieTeacherCount = rookieTeacherCount;
		this.professionalSubjectLeaderCount = professionalSubjectLeaderCount;
		this.cityOutstandYoungTeacherCount = cityOutstandYoungTeacherCount;
		this.citySpecialTeacherCount = citySpecialTeacherCount;
		this.provincialSpecialTeacherCount = provincialSpecialTeacherCount;
		this.doubleTypeTeacherCount = doubleTypeTeacherCount;
		this.countyAuditStatus = countyAuditStatus;
		this.cityAuditStatus = cityAuditStatus;
		this.modifyTime = modifyTime;
	}

	// Property accessors
	@GenericGenerator(name = "generator", strategy = "increment")
	@Id
	@GeneratedValue(generator = "generator")

	@Column(name = "teacher_basic_situation_id", unique = true, nullable = false)

	public Integer getTeacherBasicSituationId() {
		return this.teacherBasicSituationId;
	}

	public void setTeacherBasicSituationId(Integer teacherBasicSituationId) {
		this.teacherBasicSituationId = teacherBasicSituationId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "school_id", nullable = false)

	public SchoolBasicInfor getSchoolBasic() {
		return this.schoolBasic;
	}

	public void setSchoolBasic(SchoolBasicInfor schoolBasic) {
		this.schoolBasic = schoolBasic;
	}

	@Column(name = "servicing_staff_count", nullable = false)

	public Integer getServicingStaffCount() {
		return this.servicingStaffCount;
	}

	public void setServicingStaffCount(Integer servicingStaffCount) {
		this.servicingStaffCount = servicingStaffCount;
	}

	@Column(name = "faculty_staff_count", nullable = false)

	public Integer getFacultyStaffCount() {
		return this.facultyStaffCount;
	}

	public void setFacultyStaffCount(Integer facultyStaffCount) {
		this.facultyStaffCount = facultyStaffCount;
	}

	@Column(name = "regular_teacher_count", nullable = false)

	public Integer getRegularTeacherCount() {
		return this.regularTeacherCount;
	}

	public void setRegularTeacherCount(Integer regularTeacherCount) {
		this.regularTeacherCount = regularTeacherCount;
	}

	@Column(name = "foreign_teacher_count", nullable = false)

	public Integer getForeignTeacherCount() {
		return this.foreignTeacherCount;
	}

	public void setForeignTeacherCount(Integer foreignTeacherCount) {
		this.foreignTeacherCount = foreignTeacherCount;
	}

	@Column(name = "counseling_teacher_count", nullable = false)

	public Integer getCounselingTeacherCount() {
		return this.counselingTeacherCount;
	}

	public void setCounselingTeacherCount(Integer counselingTeacherCount) {
		this.counselingTeacherCount = counselingTeacherCount;
	}

	@Column(name = "male_teacher_count", nullable = false)

	public Integer getMaleTeacherCount() {
		return this.maleTeacherCount;
	}

	public void setMaleTeacherCount(Integer maleTeacherCount) {
		this.maleTeacherCount = maleTeacherCount;
	}

	@Column(name = "female_teacher_count", nullable = false)

	public Integer getFemaleTeacherCount() {
		return this.femaleTeacherCount;
	}

	public void setFemaleTeacherCount(Integer femaleTeacherCount) {
		this.femaleTeacherCount = femaleTeacherCount;
	}

	@Column(name = "culture_teacher_count", nullable = false)

	public Integer getCultureTeacherCount() {
		return this.cultureTeacherCount;
	}

	public void setCultureTeacherCount(Integer cultureTeacherCount) {
		this.cultureTeacherCount = cultureTeacherCount;
	}

	@Column(name = "major_teacher_count", nullable = false)

	public Integer getMajorTeacherCount() {
		return this.majorTeacherCount;
	}

	public void setMajorTeacherCount(Integer majorTeacherCount) {
		this.majorTeacherCount = majorTeacherCount;
	}

	@Column(name = "mainhigh_teacher_count", nullable = false)

	public Integer getMainHighTeacherCount() {
		return this.mainHighTeacherCount;
	}

	public void setMainHighTeacherCount(Integer mainHighTeacherCount) {
		this.mainHighTeacherCount = mainHighTeacherCount;
	}

	@Column(name = "deputyhigh_teacher_count", nullable = false)

	public Integer getDeputyHighTeacherCount() {
		return this.deputyHighTeacherCount;
	}

	public void setDeputyHighTeacherCount(Integer deputyHighTeacherCount) {
		this.deputyHighTeacherCount = deputyHighTeacherCount;
	}

	@Column(name = "intermediate_teacher_count", nullable = false)

	public Integer getIntermediateTeacherCount() {
		return this.intermediateTeacherCount;
	}

	public void setIntermediateTeacherCount(Integer intermediateTeacherCount) {
		this.intermediateTeacherCount = intermediateTeacherCount;
	}

	@Column(name = "primary_teacher_count", nullable = false)

	public Integer getPrimaryTeacherCount() {
		return this.primaryTeacherCount;
	}

	public void setPrimaryTeacherCount(Integer primaryTeacherCount) {
		this.primaryTeacherCount = primaryTeacherCount;
	}

	@Column(name = "rookie_teacher_count", nullable = false)

	public Integer getRookieTeacherCount() {
		return this.rookieTeacherCount;
	}

	public void setRookieTeacherCount(Integer rookieTeacherCount) {
		this.rookieTeacherCount = rookieTeacherCount;
	}

	@Column(name = "professional_subject_leader_count", nullable = false)

	public Integer getProfessionalSubjectLeaderCount() {
		return this.professionalSubjectLeaderCount;
	}

	public void setProfessionalSubjectLeaderCount(Integer professionalSubjectLeaderCount) {
		this.professionalSubjectLeaderCount = professionalSubjectLeaderCount;
	}

	@Column(name = "city_outstand_young_teacher_count", nullable = false)

	public Integer getCityOutstandYoungTeacherCount() {
		return this.cityOutstandYoungTeacherCount;
	}

	public void setCityOutstandYoungTeacherCount(Integer cityOutstandYoungTeacherCount) {
		this.cityOutstandYoungTeacherCount = cityOutstandYoungTeacherCount;
	}

	@Column(name = "city_special_teacher_count", nullable = false)

	public Integer getCitySpecialTeacherCount() {
		return this.citySpecialTeacherCount;
	}

	public void setCitySpecialTeacherCount(Integer citySpecialTeacherCount) {
		this.citySpecialTeacherCount = citySpecialTeacherCount;
	}

	@Column(name = "provincial_special_teacher_count", nullable = false)

	public Integer getProvincialSpecialTeacherCount() {
		return this.provincialSpecialTeacherCount;
	}

	public void setProvincialSpecialTeacherCount(Integer provincialSpecialTeacherCount) {
		this.provincialSpecialTeacherCount = provincialSpecialTeacherCount;
	}

	@Column(name = "doubletype_teacher_count", nullable = false)

	public Integer getDoubleTypeTeacherCount() {
		return this.doubleTypeTeacherCount;
	}

	public void setDoubleTypeTeacherCount(Integer doubleTypeTeacherCount) {
		this.doubleTypeTeacherCount = doubleTypeTeacherCount;
	}

	@Column(name = "county_auditstatus", nullable = false)

	public Short getCountyAuditStatus() {
		return this.countyAuditStatus;
	}

	public void setCountyAuditStatus(Short countyAuditStatus) {
		this.countyAuditStatus = countyAuditStatus;
	}

	@Column(name = "city_auditstatus", nullable = false)

	public Short getCityAuditStatus() {
		return this.cityAuditStatus;
	}

	public void setCityAuditStatus(Short cityAuditStatus) {
		this.cityAuditStatus = cityAuditStatus;
	}

	@Column(name = "modify_time", nullable = false, length = 19)

	public Date getModifyTime() {
		return this.modifyTime;
	}

	public void setModifyTime(Date modifyTime) {
		this.modifyTime = modifyTime;
	}

}